export default class Queue {
	constructor() {
		this.queue = [];
	}

	/**
	 * 将元素添加到队列中
	 * @param element
	 */
	enqueue = element => {
		this.queue.push(element);
	};

	/**
	 * 从队列中删除前端元素
	 * @returns {*}
	 */
	dequeue() {
		return this.queue.shift();
	};

	/**
	 * 查看前端元素
	 * @returns {*}
	 */
	front() {
		return this.queue[0];
	};

	/**
	 * 查看队列是否为空
	 * @returns {*}
	 */
	isEmpty() {
		return this.queue.length === 0;
	};

	/**
	 * 查看队列是中的元素个数
	 * @returns {*}
	 */
	size() {
		return this.queue.length;
	};

	/**
	 * 清空队列
	 * @returns {*}
	 */
	clear() {
		this.queue = [];
	};

	/**
	 * 将队列中元素以字符串形式输出
	 * @returns {*}
	 */
	toString() {
		return this.queue.join('');
	};
}
